<!DOCTYPE html><html lang="en" data-astro-cid-yu3cdcui> <head><meta charset="UTF-8"><link rel="sitemap" href="/sitemap-index.xml"><meta name="msvalidate.01" content="F7C246820EB04DD140494C98F93A97C7"><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 引入字体CSS网络文件 --><link rel="stylesheet" href="https://jsd.liiiu.cn/gh/willow-god/Sharding-fonts/ZhuqueFangsong-Regular/result.css"><title>LiuShen | 项目</title><!-- Used to add dark mode right away, adding here prevents any flicker --><script>
      if (typeof Storage !== 'undefined') {
        if (
          localStorage.getItem('dark_mode') &&
          localStorage.getItem('dark_mode') == 'true'
        ) {
          document.documentElement.classList.add('dark')
        }
      }
    </script><link rel="icon" type="image/x-icon" href="../assets/images/favicon.png"><link rel="stylesheet" href="/_astro/hoisted.Ci2srszt.css">
<link rel="stylesheet" href="/_astro/about.BsFLPuVr.css">
<style>.line-clamp-4[data-astro-cid-wlgu4ngl]{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
</style><script type="module">window.darkMode=!1;const d=["fixed","h-14"],s=["absolute","h-20"],o=["border-neutral-300/50","bg-white/80","dark:border-neutral-600/40","dark:bg-neutral-900/60","backdrop-blur-2xl"],l=["border-transparent"];let n=null;document.addEventListener("DOMContentLoaded",()=>{n=document.getElementById("header"),localStorage.getItem("dark_mode")&&localStorage.getItem("dark_mode")==="true"?(window.darkMode=!0,m()):i(),stickyHeaderFuncionality(),applyMenuItemClasses(),evaluateHeaderPosition(),a()});window.stickyHeaderFuncionality=()=>{window.addEventListener("scroll",()=>{evaluateHeaderPosition()})};window.evaluateHeaderPosition=()=>{window.scrollY>16?(n.firstElementChild.classList.add(...o),n.firstElementChild.classList.remove(...l),n.classList.add(...d),n.classList.remove(...s),document.getElementById("menu").classList.add("top-[56px]"),document.getElementById("menu").classList.remove("top-[75px]")):(n.firstElementChild.classList.remove(...o),n.firstElementChild.classList.add(...l),n.classList.add(...s),n.classList.remove(...d),document.getElementById("menu").classList.remove("top-[56px]"),document.getElementById("menu").classList.add("top-[75px]"))};document.getElementById("darkToggle").addEventListener("click",()=>{document.documentElement.classList.add("duration-300"),document.documentElement.classList.contains("dark")?(localStorage.removeItem("dark_mode"),i(!0)):(localStorage.setItem("dark_mode",!0),m(!0))});function i(t){document.getElementById("sun").classList.remove("setting"),document.getElementById("moon").classList.remove("rising");let e=0;t&&(e=500,document.getElementById("moon").classList.add("setting")),setTimeout(()=>{document.getElementById("dayText").classList.remove("hidden"),document.getElementById("nightText").classList.add("hidden"),document.getElementById("moon").classList.add("hidden"),document.getElementById("sun").classList.remove("hidden"),t&&(document.documentElement.classList.remove("dark"),document.getElementById("sun").classList.add("rising"))},e)}function m(t){document.getElementById("moon").classList.remove("setting"),document.getElementById("sun").classList.remove("rising");let e=0;t&&(e=500,document.getElementById("sun").classList.add("setting")),setTimeout(()=>{document.getElementById("nightText").classList.remove("hidden"),document.getElementById("dayText").classList.add("hidden"),document.getElementById("sun").classList.add("hidden"),document.getElementById("moon").classList.remove("hidden"),t&&(document.documentElement.classList.add("dark"),document.getElementById("moon").classList.add("rising"))},e)}window.applyMenuItemClasses=()=>{const t=document.querySelectorAll("#menu a");for(let e=0;e<t.length;e++)t[e].pathname===window.location.pathname&&t[e].classList.add("text-neutral-900","dark:text-white")};function a(){document.getElementById("openMenu").addEventListener("click",()=>{openMobileMenu()}),document.getElementById("closeMenu").addEventListener("click",()=>{closeMobileMenu()})}window.openMobileMenu=()=>{document.getElementById("openMenu").classList.add("hidden"),document.getElementById("closeMenu").classList.remove("hidden"),document.getElementById("menu").classList.remove("hidden"),document.getElementById("mobileMenuBackground").classList.add("opacity-0"),document.getElementById("mobileMenuBackground").classList.remove("hidden"),setTimeout(()=>{document.getElementById("mobileMenuBackground").classList.remove("opacity-0")},1)};window.closeMobileMenu=()=>{document.getElementById("closeMenu").classList.add("hidden"),document.getElementById("openMenu").classList.remove("hidden"),document.getElementById("menu").classList.add("hidden"),document.getElementById("mobileMenuBackground").classList.add("hidden")};
</script></head> <body class="antialiased bg-white dark:bg-neutral-950" data-astro-cid-yu3cdcui> <div class="absolute w-full h-auto" style="z-index:-1"> <div class="absolute top-0 left-0 w-1/2 h-auto bg-neutral-700 dark:bg-neutral-300"> <div class="absolute inset-0 z-30 w-full h-full pointer-events-none bg-gradient-to-tl from-white dark:from-neutral-950 from-50% via-90% to-100% via-transparent to-transparent"></div> <div class="flex flex-col w-full h-full border-t border-l divide-y divide-dashed divide-neutral-300 dark:divide-neutral-700 border-neutral-300 dark:border-neutral-900"> <div class="relative flex w-full divide-x h-[30px] sm:h-[45px] md:h-[60px] xl:h-[88px] divide-neutral-300 dark:divide-neutral-700 divide-dashed"> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> </div> <div class="relative flex w-full divide-x h-[30px] sm:h-[45px] md:h-[60px] xl:h-[88px] divide-neutral-300 dark:divide-neutral-700 divide-dashed"> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> </div> <div class="relative flex w-full divide-x h-[30px] sm:h-[45px] md:h-[60px] xl:h-[88px] divide-neutral-300 dark:divide-neutral-700 divide-dashed"> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> </div> <div class="relative flex w-full divide-x h-[30px] sm:h-[45px] md:h-[60px] xl:h-[88px] divide-neutral-300 dark:divide-neutral-700 divide-dashed"> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> </div> <div class="relative flex w-full divide-x h-[30px] sm:h-[45px] md:h-[60px] xl:h-[88px] divide-neutral-300 dark:divide-neutral-700 divide-dashed"> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> </div> <div class="relative flex w-full divide-x h-[30px] sm:h-[45px] md:h-[60px] xl:h-[88px] divide-neutral-300 dark:divide-neutral-700 divide-dashed"> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> </div> </div> </div> <div class="absolute top-0 right-0 w-1/2 h-auto bg-neutral-700 dark:bg-neutral-300"> <div class="absolute inset-0 z-30 w-full h-full pointer-events-none bg-gradient-to-tr from-white dark:from-neutral-950 from-50% via-90% to-100% via-transparent to-transparent"></div> <div class="flex flex-col w-full h-full border-t border-l divide-y divide-dashed divide-neutral-300 dark:divide-neutral-700 border-neutral-300 dark:border-neutral-900"> <div class="relative flex w-full divide-x h-[30px] sm:h-[45px] md:h-[60px] xl:h-[88px] divide-neutral-300 dark:divide-neutral-700 divide-dashed"> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> </div> <div class="relative flex w-full divide-x h-[30px] sm:h-[45px] md:h-[60px] xl:h-[88px] divide-neutral-300 dark:divide-neutral-700 divide-dashed"> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> </div> <div class="relative flex w-full divide-x h-[30px] sm:h-[45px] md:h-[60px] xl:h-[88px] divide-neutral-300 dark:divide-neutral-700 divide-dashed"> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> </div> <div class="relative flex w-full divide-x h-[30px] sm:h-[45px] md:h-[60px] xl:h-[88px] divide-neutral-300 dark:divide-neutral-700 divide-dashed"> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> </div> <div class="relative flex w-full divide-x h-[30px] sm:h-[45px] md:h-[60px] xl:h-[88px] divide-neutral-300 dark:divide-neutral-700 divide-dashed"> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> </div> <div class="relative flex w-full divide-x h-[30px] sm:h-[45px] md:h-[60px] xl:h-[88px] divide-neutral-300 dark:divide-neutral-700 divide-dashed"> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> <div class="w-full h-auto bg-white dark:bg-neutral-950 aspect-square {classes}"></div> </div> </div> </div> </div> <!-- This is an invisible div with relative position so that it takes up the height of the menu (because menu is absolute/fixed) --><div class="relative w-full h-20 opacity-0 pointer-events-none"></div> <header id="header" class="absolute top-0 z-50 w-full h-20"> <div class="flex items-center justify-between h-full max-w-7xl pl-6 pr-4 mx-auto border-b border-l-0 border-r-0 border-transparent select-none lg:border-r lg:border-l lg:rounded-b-xl"> <a href="/" class="mt-1 h-5 text-base group relative z-30 flex items-center space-x-1.5 text-black dark:text-white font-semibold"> <span class="text-xl -translate-y-0.5 group-hover:-rotate-12 group-hover:scale-[1.2] ease-in-out duration-300">〄
</span> <!-- Logo Text --> <span class="-translate-y-0.5"> LIUSHEN</span> </a> <div id="mobileMenuBackground" onclick="closeMobileMenu()" class="fixed inset-0 z-20 hidden w-screen h-screen duration-300 ease-out bg-white/90 dark:bg-neutral-950/90"></div> <nav class="relative z-30 flex flex-row-reverse justify-start w-full text-sm sm:justify-end text-neutral-500 dark:text-neutral-400 sm:flex-row"> <div id="openMenu" class="flex flex-col items-end justify-center w-6 h-6 ml-4 cursor-pointer sm:hidden"> <svg class="w-8 h-8 dark:text-neutral-200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor"><path d="M4 8h16M4 16h16"></path></svg> </div> <div id="closeMenu" class="flex-col items-end justify-center hidden w-6 h-6 ml-4 -translate-x-1 cursor-pointer sm:hidden"> <svg class="w-6 h-6 text-neutral-600 dark:text-neutral-200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor"><path d="M6 18L18 6M6 6l12 12"></path></svg> </div> <div id="menu" class="fixed top-[75px] ease-out duration-300 sm:top-0 w-full sm:py-0 pt-7 pb-4 dm:mx-0 left-0 z-40 flex-col items-end justify-start hidden h-auto text-sm sm:text-base sm:h-auto sm:relative sm:flex-row sm:flex sm:w-auto sm:pr-0 sm:pt-0"> <div class="absolute inset-0 top-0 right-0 block w-full h-full px-3 sm:hidden"> <div class="relative w-full h-full bg-white border border-dashed border-neutral-300 dark:border-neutral-700 backdrop-blur-sm rounded-xl dark:bg-neutral-950"></div> </div> <a href="/" class="relative flex items-center justify-center w-full px-3 py-2 tracking-wide text-center duration-200 ease-out sm:py-0 sm:mb-0 md:w-auto hover:text-neutral-900 dark:hover:text-white font-medium"> 主页 </a><a href="/posts" class="relative flex items-center justify-center w-full px-3 py-2 tracking-wide text-center duration-200 ease-out sm:py-0 sm:mb-0 md:w-auto hover:text-neutral-900 dark:hover:text-white font-medium"> 文章 </a><a href="/sites" class="relative flex items-center justify-center w-full px-3 py-2 tracking-wide text-center duration-200 ease-out sm:py-0 sm:mb-0 md:w-auto hover:text-neutral-900 dark:hover:text-white font-medium"> 网站 </a><a href="/projects" class="relative flex items-center justify-center w-full px-3 py-2 tracking-wide text-center duration-200 ease-out sm:py-0 sm:mb-0 md:w-auto hover:text-neutral-900 dark:hover:text-white font-medium text-black dark:text-white underline decoration-dashed decoration-1 underline-offset-4"> 项目 </a><a href="/about" class="relative flex items-center justify-center w-full px-3 py-2 tracking-wide text-center duration-200 ease-out sm:py-0 sm:mb-0 md:w-auto hover:text-neutral-900 dark:hover:text-white font-medium"> 关于 </a> </div> <div id="darkToggle" class="relative flex items-center pl-6 ml-4 font-medium tracking-wide cursor-pointer text-neutral-800 group dark:text-white"> <div class="absolute left-0 flex items-center justify-center w-6 h-6 overflow-hidden border-b border-transparent horizon group-hover:border-neutral-600"> <svg class="absolute w-6 h-6 transition duration-700 transform ease" id="sun" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor"><path d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"></path></svg> <svg class="absolute hidden w-6 h-6 transition duration-700 transform ease" id="moon" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor"><path d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"></path></svg> </div> <span class="hidden sm:inline-block"> <span id="dayText" class="ml-2"></span> <span id="nightText" class="hidden ml-2"></span> </span> </div> </nav> </div> </header>  <section class="relative z-20 max-w-6xl mx-auto my-12 px-7 lg:px-0"> <div class="relative z-20 w-full mx-auto lg:mx-0"> <h2 class="text-2xl font-bold tracking-tight text-neutral-900 dark:text-neutral-100 sm:text-3xl lg:text-4xl"> 我的项目 </h2> <p class="mt-3 text-sm leading-6 text-neutral-600 dark:text-neutral-400 sm:mt-4 lg:mt-6 sm:leading-7 lg:leading-8 sm:text-base lg:text-lg"> 以下是我目前正在做的一些项目。我经常捣鼓一些新项目和提出许多好的新想法。总是在做一些新的东西，所以经常回来看看！ </p> </div> <div class="z-50 grid items-stretch w-full grid-cols-1 my-8 gap-7 sm:gap-5 sm:grid-cols-1"> <a href="https://github.com/willow-god/Friend-Circle-Lite" target="_blank" class="relative flex flex-row items-center duration-300 ease-out p-7 sm:p-3 group h-100 rounded-2xl" data-astro-cid-wlgu4ngl> <span class="absolute inset-0 z-20 block w-full h-full duration-300 ease-out bg-transparent border border-transparent border-dashed group-hover:-translate-x-1 group-hover:-translate-y-1 group-hover:border group-hover:border-neutral-300 dark:group-hover:border-neutral-600 group-hover:border-dashed rounded-2xl group-hover:bg-white dark:group-hover:bg-neutral-950" data-astro-cid-wlgu4ngl></span> <span class="absolute inset-0 z-10 block w-full h-full duration-300 ease-out border border-dashed rounded-2xl border-neutral-300 dark:border-neutral-600 group-hover:translate-x-1 group-hover:translate-y-1 shadow-lg group-hover:shadow-xl" data-astro-cid-wlgu4ngl></span> <span class="relative z-30 flex flex-row items-center duration-300 ease-out group-hover:-translate-x-1 group-hover:-translate-y-1" data-astro-cid-wlgu4ngl> <span class="block w-1/3 mr-4" data-astro-cid-wlgu4ngl> <img src="https://p.liiiu.cn/i/2024/08/05/66b035d5eeac8.webp" class="w-full h-auto rounded-lg aspect-[16/9]" data-astro-cid-wlgu4ngl> </span> <span class="block w-2/3 px-1" data-astro-cid-wlgu4ngl> <span class="flex items-center mb-1 text-base font-semibold tracking-tight text-neutral-900 dark:text-neutral-100" data-astro-cid-wlgu4ngl> <span data-astro-cid-wlgu4ngl>Friend-Circle-Lite</span> <svg class="group-hover:translate-x-0 group-hover:translate-y-0 -rotate-45 translate-y-1 -translate-x-1 w-2.5 h-2.5 stroke-current ml-1 transition-all ease-in-out duration-200 transform" viewBox="0 0 13 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-astro-cid-wlgu4ngl><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-wlgu4ngl><g id="svg" transform="translate(0.666667, 2.333333)" stroke="currentColor" stroke-width="2.4" data-astro-cid-wlgu4ngl><g data-astro-cid-wlgu4ngl><polyline class="transition-all duration-200 ease-out opacity-0 delay-0 group-hover:opacity-100" points="5.33333333 0 10.8333333 5.5 5.33333333 11" data-astro-cid-wlgu4ngl></polyline><line class="transition-all duration-200 ease-out transform -translate-x-1 opacity-0 group-hover:translate-x-0 group-hover:opacity-100 group-hover:ml-0" x1="10.8333333" y1="5.5" x2="0.833333333" y2="5.16666667" data-astro-cid-wlgu4ngl></line></g></g></g></svg> </span> <span class="text-sm text-neutral-600 dark:text-neutral-400 line-clamp-4" data-astro-cid-wlgu4ngl> 🐱 一个基于 GitHub Actions 运行的精简版友链朋友圈程序，兼容 FC 的 JSON 格式，无需后端支持。提供友圈更新推送，允许用户订阅并接收站点更新的电子邮件通知。 </span>  </span> </span> </a><a href="https://github.com/willow-god/check-flink" target="_blank" class="relative flex flex-row items-center duration-300 ease-out p-7 sm:p-3 group h-100 rounded-2xl" data-astro-cid-wlgu4ngl> <span class="absolute inset-0 z-20 block w-full h-full duration-300 ease-out bg-transparent border border-transparent border-dashed group-hover:-translate-x-1 group-hover:-translate-y-1 group-hover:border group-hover:border-neutral-300 dark:group-hover:border-neutral-600 group-hover:border-dashed rounded-2xl group-hover:bg-white dark:group-hover:bg-neutral-950" data-astro-cid-wlgu4ngl></span> <span class="absolute inset-0 z-10 block w-full h-full duration-300 ease-out border border-dashed rounded-2xl border-neutral-300 dark:border-neutral-600 group-hover:translate-x-1 group-hover:translate-y-1 shadow-lg group-hover:shadow-xl" data-astro-cid-wlgu4ngl></span> <span class="relative z-30 flex flex-row items-center duration-300 ease-out group-hover:-translate-x-1 group-hover:-translate-y-1" data-astro-cid-wlgu4ngl> <span class="block w-1/3 mr-4" data-astro-cid-wlgu4ngl> <img src="https://p.liiiu.cn/i/2024/08/05/66b036a71dc94.webp" class="w-full h-auto rounded-lg aspect-[16/9]" data-astro-cid-wlgu4ngl> </span> <span class="block w-2/3 px-1" data-astro-cid-wlgu4ngl> <span class="flex items-center mb-1 text-base font-semibold tracking-tight text-neutral-900 dark:text-neutral-100" data-astro-cid-wlgu4ngl> <span data-astro-cid-wlgu4ngl>Check-Link</span> <svg class="group-hover:translate-x-0 group-hover:translate-y-0 -rotate-45 translate-y-1 -translate-x-1 w-2.5 h-2.5 stroke-current ml-1 transition-all ease-in-out duration-200 transform" viewBox="0 0 13 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-astro-cid-wlgu4ngl><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-wlgu4ngl><g id="svg" transform="translate(0.666667, 2.333333)" stroke="currentColor" stroke-width="2.4" data-astro-cid-wlgu4ngl><g data-astro-cid-wlgu4ngl><polyline class="transition-all duration-200 ease-out opacity-0 delay-0 group-hover:opacity-100" points="5.33333333 0 10.8333333 5.5 5.33333333 11" data-astro-cid-wlgu4ngl></polyline><line class="transition-all duration-200 ease-out transform -translate-x-1 opacity-0 group-hover:translate-x-0 group-hover:opacity-100 group-hover:ml-0" x1="10.8333333" y1="5.5" x2="0.833333333" y2="5.16666667" data-astro-cid-wlgu4ngl></line></g></g></g></svg> </span> <span class="text-sm text-neutral-600 dark:text-neutral-400 line-clamp-4" data-astro-cid-wlgu4ngl> 🔗 一个专用于检查友链链接可连性的工具，帮助站长大幅减少人工检查的工作量，确保友链的正常访问和更新，提升网站的用户体验和可靠性。 </span>  </span> </span> </a><a href="https://github.com/willow-god/hexo-safego" target="_blank" class="relative flex flex-row items-center duration-300 ease-out p-7 sm:p-3 group h-100 rounded-2xl" data-astro-cid-wlgu4ngl> <span class="absolute inset-0 z-20 block w-full h-full duration-300 ease-out bg-transparent border border-transparent border-dashed group-hover:-translate-x-1 group-hover:-translate-y-1 group-hover:border group-hover:border-neutral-300 dark:group-hover:border-neutral-600 group-hover:border-dashed rounded-2xl group-hover:bg-white dark:group-hover:bg-neutral-950" data-astro-cid-wlgu4ngl></span> <span class="absolute inset-0 z-10 block w-full h-full duration-300 ease-out border border-dashed rounded-2xl border-neutral-300 dark:border-neutral-600 group-hover:translate-x-1 group-hover:translate-y-1 shadow-lg group-hover:shadow-xl" data-astro-cid-wlgu4ngl></span> <span class="relative z-30 flex flex-row items-center duration-300 ease-out group-hover:-translate-x-1 group-hover:-translate-y-1" data-astro-cid-wlgu4ngl> <span class="block w-1/3 mr-4" data-astro-cid-wlgu4ngl> <img src="https://p.liiiu.cn/i/2024/08/05/66b03725c7fb9.webp" class="w-full h-auto rounded-lg aspect-[16/9]" data-astro-cid-wlgu4ngl> </span> <span class="block w-2/3 px-1" data-astro-cid-wlgu4ngl> <span class="flex items-center mb-1 text-base font-semibold tracking-tight text-neutral-900 dark:text-neutral-100" data-astro-cid-wlgu4ngl> <span data-astro-cid-wlgu4ngl>Hexo-safego</span> <svg class="group-hover:translate-x-0 group-hover:translate-y-0 -rotate-45 translate-y-1 -translate-x-1 w-2.5 h-2.5 stroke-current ml-1 transition-all ease-in-out duration-200 transform" viewBox="0 0 13 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-astro-cid-wlgu4ngl><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-wlgu4ngl><g id="svg" transform="translate(0.666667, 2.333333)" stroke="currentColor" stroke-width="2.4" data-astro-cid-wlgu4ngl><g data-astro-cid-wlgu4ngl><polyline class="transition-all duration-200 ease-out opacity-0 delay-0 group-hover:opacity-100" points="5.33333333 0 10.8333333 5.5 5.33333333 11" data-astro-cid-wlgu4ngl></polyline><line class="transition-all duration-200 ease-out transform -translate-x-1 opacity-0 group-hover:translate-x-0 group-hover:opacity-100 group-hover:ml-0" x1="10.8333333" y1="5.5" x2="0.833333333" y2="5.16666667" data-astro-cid-wlgu4ngl></line></g></g></g></svg> </span> <span class="text-sm text-neutral-600 dark:text-neutral-400 line-clamp-4" data-astro-cid-wlgu4ngl> 🚀 基于 Hexo-external-link 改进的外链跳转插件，使用 Cheerio 实现生成时替换，显著减少页面响应时间，提升访问速度，为用户提供更流畅的浏览体验。 </span>  </span> </span> </a><a href="https://share.liushen.fun/" target="_blank" class="relative flex flex-row items-center duration-300 ease-out p-7 sm:p-3 group h-100 rounded-2xl" data-astro-cid-wlgu4ngl> <span class="absolute inset-0 z-20 block w-full h-full duration-300 ease-out bg-transparent border border-transparent border-dashed group-hover:-translate-x-1 group-hover:-translate-y-1 group-hover:border group-hover:border-neutral-300 dark:group-hover:border-neutral-600 group-hover:border-dashed rounded-2xl group-hover:bg-white dark:group-hover:bg-neutral-950" data-astro-cid-wlgu4ngl></span> <span class="absolute inset-0 z-10 block w-full h-full duration-300 ease-out border border-dashed rounded-2xl border-neutral-300 dark:border-neutral-600 group-hover:translate-x-1 group-hover:translate-y-1 shadow-lg group-hover:shadow-xl" data-astro-cid-wlgu4ngl></span> <span class="relative z-30 flex flex-row items-center duration-300 ease-out group-hover:-translate-x-1 group-hover:-translate-y-1" data-astro-cid-wlgu4ngl> <span class="block w-1/3 mr-4" data-astro-cid-wlgu4ngl> <img src="https://p.liiiu.cn/i/2024/08/05/66b0387836fe4.webp" class="w-full h-auto rounded-lg aspect-[16/9]" data-astro-cid-wlgu4ngl> </span> <span class="block w-2/3 px-1" data-astro-cid-wlgu4ngl> <span class="flex items-center mb-1 text-base font-semibold tracking-tight text-neutral-900 dark:text-neutral-100" data-astro-cid-wlgu4ngl> <span data-astro-cid-wlgu4ngl>Paste-Share</span> <svg class="group-hover:translate-x-0 group-hover:translate-y-0 -rotate-45 translate-y-1 -translate-x-1 w-2.5 h-2.5 stroke-current ml-1 transition-all ease-in-out duration-200 transform" viewBox="0 0 13 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-astro-cid-wlgu4ngl><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-wlgu4ngl><g id="svg" transform="translate(0.666667, 2.333333)" stroke="currentColor" stroke-width="2.4" data-astro-cid-wlgu4ngl><g data-astro-cid-wlgu4ngl><polyline class="transition-all duration-200 ease-out opacity-0 delay-0 group-hover:opacity-100" points="5.33333333 0 10.8333333 5.5 5.33333333 11" data-astro-cid-wlgu4ngl></polyline><line class="transition-all duration-200 ease-out transform -translate-x-1 opacity-0 group-hover:translate-x-0 group-hover:opacity-100 group-hover:ml-0" x1="10.8333333" y1="5.5" x2="0.833333333" y2="5.16666667" data-astro-cid-wlgu4ngl></line></g></g></g></svg> </span> <span class="text-sm text-neutral-600 dark:text-neutral-400 line-clamp-4" data-astro-cid-wlgu4ngl> 🗂️ 一款功能强大的内容中转站，专用于存放和管理代码片段。具备后端支持，用户可以轻松管理所有数据，实现高效的数据存储和检索，便于分享和协作。 </span>  </span> </span> </a><a href="https://paste.430070.xyz/" target="_blank" class="relative flex flex-row items-center duration-300 ease-out p-7 sm:p-3 group h-100 rounded-2xl" data-astro-cid-wlgu4ngl> <span class="absolute inset-0 z-20 block w-full h-full duration-300 ease-out bg-transparent border border-transparent border-dashed group-hover:-translate-x-1 group-hover:-translate-y-1 group-hover:border group-hover:border-neutral-300 dark:group-hover:border-neutral-600 group-hover:border-dashed rounded-2xl group-hover:bg-white dark:group-hover:bg-neutral-950" data-astro-cid-wlgu4ngl></span> <span class="absolute inset-0 z-10 block w-full h-full duration-300 ease-out border border-dashed rounded-2xl border-neutral-300 dark:border-neutral-600 group-hover:translate-x-1 group-hover:translate-y-1 shadow-lg group-hover:shadow-xl" data-astro-cid-wlgu4ngl></span> <span class="relative z-30 flex flex-row items-center duration-300 ease-out group-hover:-translate-x-1 group-hover:-translate-y-1" data-astro-cid-wlgu4ngl> <span class="block w-1/3 mr-4" data-astro-cid-wlgu4ngl> <img src="https://p.liiiu.cn/i/2025/01/11/678150516f9ee.webp" class="w-full h-auto rounded-lg aspect-[16/9]" data-astro-cid-wlgu4ngl> </span> <span class="block w-2/3 px-1" data-astro-cid-wlgu4ngl> <span class="flex items-center mb-1 text-base font-semibold tracking-tight text-neutral-900 dark:text-neutral-100" data-astro-cid-wlgu4ngl> <span data-astro-cid-wlgu4ngl>Paste-Share</span> <svg class="group-hover:translate-x-0 group-hover:translate-y-0 -rotate-45 translate-y-1 -translate-x-1 w-2.5 h-2.5 stroke-current ml-1 transition-all ease-in-out duration-200 transform" viewBox="0 0 13 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-astro-cid-wlgu4ngl><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-wlgu4ngl><g id="svg" transform="translate(0.666667, 2.333333)" stroke="currentColor" stroke-width="2.4" data-astro-cid-wlgu4ngl><g data-astro-cid-wlgu4ngl><polyline class="transition-all duration-200 ease-out opacity-0 delay-0 group-hover:opacity-100" points="5.33333333 0 10.8333333 5.5 5.33333333 11" data-astro-cid-wlgu4ngl></polyline><line class="transition-all duration-200 ease-out transform -translate-x-1 opacity-0 group-hover:translate-x-0 group-hover:opacity-100 group-hover:ml-0" x1="10.8333333" y1="5.5" x2="0.833333333" y2="5.16666667" data-astro-cid-wlgu4ngl></line></g></g></g></svg> </span> <span class="text-sm text-neutral-600 dark:text-neutral-400 line-clamp-4" data-astro-cid-wlgu4ngl> 💼 基于 Cloudflare Workers 的在线剪贴板和文件分享服务，支持 Markdown、密码保护、文件上传等功能，非常强大，可以作为文件临时中转，支持多种管理。 </span>  </span> </span> </a><a href="https://tmail.qyliu.top/" target="_blank" class="relative flex flex-row items-center duration-300 ease-out p-7 sm:p-3 group h-100 rounded-2xl" data-astro-cid-wlgu4ngl> <span class="absolute inset-0 z-20 block w-full h-full duration-300 ease-out bg-transparent border border-transparent border-dashed group-hover:-translate-x-1 group-hover:-translate-y-1 group-hover:border group-hover:border-neutral-300 dark:group-hover:border-neutral-600 group-hover:border-dashed rounded-2xl group-hover:bg-white dark:group-hover:bg-neutral-950" data-astro-cid-wlgu4ngl></span> <span class="absolute inset-0 z-10 block w-full h-full duration-300 ease-out border border-dashed rounded-2xl border-neutral-300 dark:border-neutral-600 group-hover:translate-x-1 group-hover:translate-y-1 shadow-lg group-hover:shadow-xl" data-astro-cid-wlgu4ngl></span> <span class="relative z-30 flex flex-row items-center duration-300 ease-out group-hover:-translate-x-1 group-hover:-translate-y-1" data-astro-cid-wlgu4ngl> <span class="block w-1/3 mr-4" data-astro-cid-wlgu4ngl> <img src="https://p.liiiu.cn/i/2025/01/11/678150dac78c9.webp" class="w-full h-auto rounded-lg aspect-[16/9]" data-astro-cid-wlgu4ngl> </span> <span class="block w-2/3 px-1" data-astro-cid-wlgu4ngl> <span class="flex items-center mb-1 text-base font-semibold tracking-tight text-neutral-900 dark:text-neutral-100" data-astro-cid-wlgu4ngl> <span data-astro-cid-wlgu4ngl>moemail</span> <svg class="group-hover:translate-x-0 group-hover:translate-y-0 -rotate-45 translate-y-1 -translate-x-1 w-2.5 h-2.5 stroke-current ml-1 transition-all ease-in-out duration-200 transform" viewBox="0 0 13 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-astro-cid-wlgu4ngl><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-wlgu4ngl><g id="svg" transform="translate(0.666667, 2.333333)" stroke="currentColor" stroke-width="2.4" data-astro-cid-wlgu4ngl><g data-astro-cid-wlgu4ngl><polyline class="transition-all duration-200 ease-out opacity-0 delay-0 group-hover:opacity-100" points="5.33333333 0 10.8333333 5.5 5.33333333 11" data-astro-cid-wlgu4ngl></polyline><line class="transition-all duration-200 ease-out transform -translate-x-1 opacity-0 group-hover:translate-x-0 group-hover:opacity-100 group-hover:ml-0" x1="10.8333333" y1="5.5" x2="0.833333333" y2="5.16666667" data-astro-cid-wlgu4ngl></line></g></g></g></svg> </span> <span class="text-sm text-neutral-600 dark:text-neutral-400 line-clamp-4" data-astro-cid-wlgu4ngl> 📧 通过 CloudFlare 实现的临时邮箱服务，适用于各种需要临时邮箱的场景。拥有简洁易用的后台管理界面，用户可方便地创建和使用临时邮箱。 </span>  </span> </span> </a><a href="https://github.com/willow-god/Sharding-fonts" target="_blank" class="relative flex flex-row items-center duration-300 ease-out p-7 sm:p-3 group h-100 rounded-2xl" data-astro-cid-wlgu4ngl> <span class="absolute inset-0 z-20 block w-full h-full duration-300 ease-out bg-transparent border border-transparent border-dashed group-hover:-translate-x-1 group-hover:-translate-y-1 group-hover:border group-hover:border-neutral-300 dark:group-hover:border-neutral-600 group-hover:border-dashed rounded-2xl group-hover:bg-white dark:group-hover:bg-neutral-950" data-astro-cid-wlgu4ngl></span> <span class="absolute inset-0 z-10 block w-full h-full duration-300 ease-out border border-dashed rounded-2xl border-neutral-300 dark:border-neutral-600 group-hover:translate-x-1 group-hover:translate-y-1 shadow-lg group-hover:shadow-xl" data-astro-cid-wlgu4ngl></span> <span class="relative z-30 flex flex-row items-center duration-300 ease-out group-hover:-translate-x-1 group-hover:-translate-y-1" data-astro-cid-wlgu4ngl> <span class="block w-1/3 mr-4" data-astro-cid-wlgu4ngl> <img src="https://p.liiiu.cn/i/2024/08/05/66b0ef2e53eb5.webp" class="w-full h-auto rounded-lg aspect-[16/9]" data-astro-cid-wlgu4ngl> </span> <span class="block w-2/3 px-1" data-astro-cid-wlgu4ngl> <span class="flex items-center mb-1 text-base font-semibold tracking-tight text-neutral-900 dark:text-neutral-100" data-astro-cid-wlgu4ngl> <span data-astro-cid-wlgu4ngl>Sharding-fonts</span> <svg class="group-hover:translate-x-0 group-hover:translate-y-0 -rotate-45 translate-y-1 -translate-x-1 w-2.5 h-2.5 stroke-current ml-1 transition-all ease-in-out duration-200 transform" viewBox="0 0 13 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-astro-cid-wlgu4ngl><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-wlgu4ngl><g id="svg" transform="translate(0.666667, 2.333333)" stroke="currentColor" stroke-width="2.4" data-astro-cid-wlgu4ngl><g data-astro-cid-wlgu4ngl><polyline class="transition-all duration-200 ease-out opacity-0 delay-0 group-hover:opacity-100" points="5.33333333 0 10.8333333 5.5 5.33333333 11" data-astro-cid-wlgu4ngl></polyline><line class="transition-all duration-200 ease-out transform -translate-x-1 opacity-0 group-hover:translate-x-0 group-hover:opacity-100 group-hover:ml-0" x1="10.8333333" y1="5.5" x2="0.833333333" y2="5.16666667" data-astro-cid-wlgu4ngl></line></g></g></g></svg> </span> <span class="text-sm text-neutral-600 dark:text-neutral-400 line-clamp-4" data-astro-cid-wlgu4ngl> 🔣 划分后的字体文件，可以通过自建cdn方便快捷的引入字体，使用woff2网络字体切分，提高网页加载速度，提升用户体验。 </span>  </span> </span> </a><a href="https://github.com/willow-god/BiLSTM-SplitWords" target="_blank" class="relative flex flex-row items-center duration-300 ease-out p-7 sm:p-3 group h-100 rounded-2xl" data-astro-cid-wlgu4ngl> <span class="absolute inset-0 z-20 block w-full h-full duration-300 ease-out bg-transparent border border-transparent border-dashed group-hover:-translate-x-1 group-hover:-translate-y-1 group-hover:border group-hover:border-neutral-300 dark:group-hover:border-neutral-600 group-hover:border-dashed rounded-2xl group-hover:bg-white dark:group-hover:bg-neutral-950" data-astro-cid-wlgu4ngl></span> <span class="absolute inset-0 z-10 block w-full h-full duration-300 ease-out border border-dashed rounded-2xl border-neutral-300 dark:border-neutral-600 group-hover:translate-x-1 group-hover:translate-y-1 shadow-lg group-hover:shadow-xl" data-astro-cid-wlgu4ngl></span> <span class="relative z-30 flex flex-row items-center duration-300 ease-out group-hover:-translate-x-1 group-hover:-translate-y-1" data-astro-cid-wlgu4ngl> <span class="block w-1/3 mr-4" data-astro-cid-wlgu4ngl> <img src="https://p.liiiu.cn/i/2024/08/05/66b0f00cb71a3.webp" class="w-full h-auto rounded-lg aspect-[16/9]" data-astro-cid-wlgu4ngl> </span> <span class="block w-2/3 px-1" data-astro-cid-wlgu4ngl> <span class="flex items-center mb-1 text-base font-semibold tracking-tight text-neutral-900 dark:text-neutral-100" data-astro-cid-wlgu4ngl> <span data-astro-cid-wlgu4ngl>BiLSTM-SplitWords</span> <svg class="group-hover:translate-x-0 group-hover:translate-y-0 -rotate-45 translate-y-1 -translate-x-1 w-2.5 h-2.5 stroke-current ml-1 transition-all ease-in-out duration-200 transform" viewBox="0 0 13 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-astro-cid-wlgu4ngl><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-wlgu4ngl><g id="svg" transform="translate(0.666667, 2.333333)" stroke="currentColor" stroke-width="2.4" data-astro-cid-wlgu4ngl><g data-astro-cid-wlgu4ngl><polyline class="transition-all duration-200 ease-out opacity-0 delay-0 group-hover:opacity-100" points="5.33333333 0 10.8333333 5.5 5.33333333 11" data-astro-cid-wlgu4ngl></polyline><line class="transition-all duration-200 ease-out transform -translate-x-1 opacity-0 group-hover:translate-x-0 group-hover:opacity-100 group-hover:ml-0" x1="10.8333333" y1="5.5" x2="0.833333333" y2="5.16666667" data-astro-cid-wlgu4ngl></line></g></g></g></svg> </span> <span class="text-sm text-neutral-600 dark:text-neutral-400 line-clamp-4" data-astro-cid-wlgu4ngl> 📖 使用BiLSTM实现的汉语分词模型，整体采用PyTorch搭建而成，源码整洁详细，在Jupyter中即可一站式进行训练并测试结果，方便快捷。 </span>  </span> </span> </a> </div> </section>  <section class="text-gray-700 bg-white border-t sm:mt-20 dark:bg-neutral-950 border-neutral-200 dark:border-neutral-800"> <div class="container flex flex-col items-center pt-8 mx-auto px-7 max-w-7xl sm:flex-row sm:justify-between"> <a href="/" class="mt-1 h-5 text-base group relative z-30 flex items-center space-x-1.5 text-black dark:text-white font-semibold"> <span class="text-xl -translate-y-0.5 group-hover:-rotate-12 group-hover:scale-[1.2] ease-in-out duration-300">〄
</span> <!-- Logo Text --> <span class="-translate-y-0.5"> LIUSHEN</span> </a> <p class="mt-4 text-neutral-700 dark:text-neutral-100 sm:ml-4 sm:pl-4 sm:border-l sm:border-neutral-300 dark:sm:border-neutral-700 sm:mt-0">
© 2025 清羽飞扬
</p> <span class="inline-flex justify-center mt-4 space-x-5 sm:ml-auto sm:mt-0 sm:justify-start"> <a href="https://xc.liushen.fun" target="_blank" class="text-neutral-500 dark:text-neutral-400 hover:text-neutral-900 dark:hover:text-white inline-flex items-center"> <span class="sr-only">相册</span> <svg class="w-6 h-6" fill="currentColor" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"> <path d="M641.73619101 191.97015954v-0.5151938h-0.55871158l0.55871158 0.5151938zM512.50957863 2.77049483a483.41183239 483.41183239 0 0 0-56.63341721 3.34384653c-45.48726219 5.14351539-89.09203143 16.51147047-130.07731389 33.01171054 0 0 337.9755661 334.46607148 346.97391043 346.89670154V29.35421497c-10.07224967-3.43228576-20.36489563-6.51923728-30.7403656-9.39281149-41.28007998-11.10404111-84.71639348-17.19090866-129.52281373-17.19090865z m129.22661238 189.19966471l-0.55871158-0.5151938h0.55871158v0.5151938zM823.13354715 373.24678907l0.30181657-0.39025576-0.30181657-0.38323687v0.77349263z m42.40452207-225.17338874c-13.55086079-13.54945699-27.74185336-26.07414154-42.40452207-37.68776125-35.84176707-28.47042448-74.68625776-51.35934866-115.28689957-68.59939023 0 0 2.48331842 475.34420608 0 490.52206862l252.27230272-252.22738121a513.47556746 513.47556746 0 0 0-15.17926626-28.29635351c-21.39668706-37.04622559-47.71789698-72.0751937-79.40161482-103.71118242zM823.13354715 373.24678907v-0.77349263l0.3397191 0.38323687-0.3397191 0.39025576z m0.8549129 262.30664986v-0.52080901l-0.5151938 0.52080901h0.5151938zM976.27806752 319.6554018S641.90605052 657.58745026 629.38698121 666.59140972h356.71345996c3.42667059-10.07365347 6.51923728-20.36629941 9.34367857-30.74176942 11.14755882-41.37273066 17.24004154-84.67708715 17.24004157-129.52140992 0-19.17166742-1.2002472-38.07380568-3.39438325-56.63482101-5.14351539-45.49147358-16.46093376-89.09203143-33.01171054-130.03800757zM823.98846005 635.55343893h-0.5151938l0.5151938-0.52080901v0.52080901zM640.14568798 819.39621096h-0.72857108l0.3453343 0.37902545 0.38323678-0.37902545z m-159.91784502-115.24759316L732.49453049 956.37599896a499.94295605 499.94295605 0 0 0 28.34548648-15.1778625c37.04061041-21.30965156 72.0260608-47.67437924 103.75470009-79.40301856 13.50032407-13.50593924 25.98149087-27.74044958 37.6442435-42.39890694 28.42129154-35.85159364 51.36496384-74.64835522 68.59517883-115.29251472 0 0-475.38351243 2.49033743-490.60629643 0.04492156z m159.91784502 115.24759316l-0.38323678 0.37902545-0.3453343-0.37902545h0.72857108z m-258.31003731 0.12634187h0.51659763l-0.51659763-0.51519386v0.51519386z m-31.04218218-194.60709409v356.71345999a513.9570701 513.9570701 0 0 0 30.73615423 9.34929378c41.3348281 11.14755882 84.68270232 17.2288112 129.52702513 17.22881115 19.12113069 0 38.02888415-1.2002472 56.55199693-3.33963509a497.57194147 497.57194147 0 0 0 130.07591007-33.06084349c0.04492156 0-337.89274202-334.37201697-346.89108636-346.89108634z m31.04218218 194.60709409v-0.55871155l0.55450014 0.55871155h-0.55450014z m-181.79182337-183.4202289v-0.76787746l-0.38323683 0.38323681 0.38323683 0.38464065z m115.24338183-159.9613628L63.10334568 728.36834232c4.72097222 9.64689896 9.82658503 19.08322816 15.18347772 28.33987129 21.30965156 37.12904968 47.67437924 72.11450007 79.40161475 103.79821783 13.50734304 13.55086079 27.74185336 26.02500863 42.40031066 37.6456473 35.88388101 28.51394221 74.60343366 51.36496384 115.3360325 68.59377501 0 0-2.57737289-475.38351243-0.13757218-490.60489262z m-115.24338183 159.9613628l-0.38323683-0.38464065 0.38323683-0.38323681v0.76787746z m-0.51519385-260.45363669v0.42113937l0.4772913-0.42113937h-0.4772913z m-171.49356221-0.30181654c-11.10404111 41.32921291-17.19090866 84.67708715-17.19090863 129.52140992 0 19.12253449 1.2002472 38.07380568 3.38315286 56.59691846 5.14913056 45.52937614 16.42303119 89.13554919 33.06084348 130.03239235 0 0 334.33411447-337.93204836 346.85318377-346.89249016H37.38436502c-3.43228576 10.03013573-6.51923728 20.36629941-9.34929378 30.74176943z m171.49356221 0.30181654h0.4772913l-0.4772913 0.42113937v-0.42113937z m181.74830569-182.47828054l-0.34533432 0.39025583h0.77349265l-0.42815833-0.39025583z m-120.99053032-121.46080259c-37.12904968 21.35316928-72.11450007 47.72351217-103.7603153 79.35809707-13.63228106 13.59437851-26.06291112 27.82888883-37.68214608 42.40452206-28.47182827 35.84597846-51.36496384 74.68625776-68.63869655 115.37533885 0 0 475.47054787-2.52823994 490.64981421-0.0828241L288.62066494 56.53595302c-9.59636221 4.79818107-19.07761296 9.81675845-28.33425612 15.17365109z m120.99053032 121.46080259l0.42815833 0.39025583h-0.77349265l0.34533432-0.39025583z m0 0"></path> </svg> </a> <a href="https://blog.qyliu.top" target="_blank" class="text-neutral-500 dark:text-neutral-400 hover:text-neutral-900 dark:hover:text-white"> <span class="sr-only">博客</span> <svg class="w-6 h-6" fill="currentColor" viewBox="0 0 1024 1024" aria-hidden="true"> <path fill-rule="evenodd" d="M630.816594 591.217203 393.202848 591.217203c-21.781072 0-39.603996 17.819854-39.603996 39.600927s17.822924 39.600927 39.603996 39.600927l237.613746 0c21.781072 0 39.60195-17.819854 39.60195-39.600927S652.597667 591.217203 630.816594 591.217203z" clip-rule="evenodd"></path> <path fill-rule="evenodd" d="M393.202848 432.80531l118.80585 0c21.781072 0 39.60195-17.820877 39.60195-39.60195 0-21.782096-17.820877-39.602973-39.60195-39.602973l-118.80585 0c-21.781072 0-39.603996 17.820877-39.603996 39.602973C353.598852 414.984433 371.421776 432.80531 393.202848 432.80531z" clip-rule="evenodd"></path> <path fill-rule="evenodd" d="M511.999488 0.606821c-282.434557 0-511.393179 228.958622-511.393179 511.393179 0 282.433534 228.958622 511.395226 511.393179 511.395226s511.393179-228.960669 511.393179-511.395226C1023.392668 229.565443 794.434046 0.606821 511.999488 0.606821zM828.82839 624.287389c0 113.0211-91.996251 204.523093-205.813482 204.523093L401.222499 828.810482c-113.737414 0-206.051913-91.501994-206.051913-204.523093L195.170586 399.795499c0.078795-113.025193 92.314499-204.603935 206.051913-204.603935L505.076822 195.191564c113.817232 0 204.942649 84.986603 204.942649 198.011796 1.486864 21.208021 20.555152 39.60195 42.315758 39.60195l35.523051 0c22.750143 0 40.97011 23.860431 40.97011 46.454008L828.82839 624.287389z" clip-rule="evenodd"></path> </svg> </a> <a href="https://github.com/willow-god" target="_blank" class="text-neutral-500 dark:text-neutral-400 hover:text-neutral-900 dark:hover:text-white inline-flex items-center"> <span class="sr-only">GitHub</span> <svg class="w-6 h-6" fill="currentColor" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"> <path d="M512 12.672c-282.88 0-512 229.248-512 512 0 226.261333 146.688 418.133333 350.08 485.76 25.6 4.821333 34.986667-11.008 34.986667-24.618667 0-12.16-0.426667-44.373333-0.64-87.04-142.421333 30.890667-172.458667-68.693333-172.458667-68.693333C188.672 770.986667 155.008 755.2 155.008 755.2c-46.378667-31.744 3.584-31.104 3.584-31.104 51.413333 3.584 78.421333 52.736 78.421333 52.736 45.653333 78.293333 119.850667 55.68 149.12 42.581333 4.608-33.109333 17.792-55.68 32.426667-68.48-113.706667-12.8-233.216-56.832-233.216-253.013333 0-55.893333 19.84-101.546667 52.693333-137.386667-5.76-12.928-23.04-64.981333 4.48-135.509333 0 0 42.88-13.738667 140.8 52.48 40.96-11.392 84.48-17.024 128-17.28 43.52 0.256 87.04 5.888 128 17.28 97.28-66.218667 140.16-52.48 140.16-52.48 27.52 70.528 10.24 122.581333 5.12 135.509333 32.64 35.84 52.48 81.493333 52.48 137.386667 0 196.693333-119.68 240-233.6 252.586667 17.92 15.36 34.56 46.762667 34.56 94.72 0 68.522667-0.64 123.562667-0.64 140.202666 0 13.44 8.96 29.44 35.2 24.32C877.44 942.592 1024 750.592 1024 524.672c0-282.752-229.248-512-512-512"></path> </svg> </a> <a href="https://gitee.com/willow-god" target="_blank" class="text-neutral-500 dark:text-neutral-400 hover:text-neutral-900 dark:hover:text-white inline-flex items-center"> <span class="sr-only">Gitee</span> <svg class="w-6 h-6" fill="currentColor" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"> <path d="M512 1024C230.4 1024 0 793.6 0 512S230.4 0 512 0s512 230.4 512 512-230.4 512-512 512z m259.2-569.6H480c-12.8 0-25.6 12.8-25.6 25.6v64c0 12.8 12.8 25.6 25.6 25.6h176c12.8 0 25.6 12.8 25.6 25.6v12.8c0 41.6-35.2 76.8-76.8 76.8h-240c-12.8 0-25.6-12.8-25.6-25.6V416c0-41.6 35.2-76.8 76.8-76.8h355.2c12.8 0 25.6-12.8 25.6-25.6v-64c0-12.8-12.8-25.6-25.6-25.6H416c-105.6 0-188.8 86.4-188.8 188.8V768c0 12.8 12.8 25.6 25.6 25.6h374.4c92.8 0 169.6-76.8 169.6-169.6v-144c0-12.8-12.8-25.6-25.6-25.6z"></path> </svg> </a> </span> </div> <!-- New Information Section --> <div class="container flex flex-col justify-between pb-8 mt-4 sm:mt-2 mx-auto px-7 items-center max-w-7xl sm:flex-row sm:justify-between"> <!-- Left Bottom Section --> <div class="flex flex-col md:flex-row items-center sm:items-start md:space-x-4 md:space-y-0"> <a href="https://beian.miit.gov.cn/" target="_blank" class="hover:text-neutral-900 dark:hover:text-white text-neutral-700 dark:text-neutral-100 border-neutral-300 dark:border-neutral-700">
陕ICP备2024028531号
</a> <a href="https://beian.mps.gov.cn/#/query/webSearch?code=61011602000637" target="_blank" class="hover:text-neutral-900 dark:hover:text-white text-neutral-700 dark:text-neutral-100 md:ml-4 md:pl-4 md:border-l border-neutral-300 dark:border-neutral-700 mt-1">
陕公网安备61011602000637号
</a> </div> <!-- Right Bottom Section --> <div class="flex flex-col md:flex-row items-center sm:items-end md:space-x-4 md:space-y-0"> <a href="https://www.dogecloud.com/" target="_blank" class="hover:text-neutral-900 dark:hover:text-white text-neutral-700 dark:text-neutral-100 border-neutral-300 dark:border-neutral-700">
多吉云CDN
</a> <a href="https://github.com/ccbikai/astro-aria" target="_blank" class="hover:text-neutral-900 dark:hover:text-white text-neutral-700 dark:text-neutral-100 border-neutral-300 dark:border-neutral-700 md:ml-4 md:pl-4 md:border-l mt-1">
ASTRO-ARIA主题
</a> </div> </div> </section>   <script defer src="https://um.liushen.fun/script.js" data-website-id="776c8f9f-aa4f-4045-926f-92a2346570ce"></script> </body></html>